import App from './App'

// #ifndef VUE3
import Vue from 'vue'
// uView
import uView from './uni_modules/uview-ui'
import store from './store'

Vue.prototype.$store = store
Vue.use(uView)
uni.$u.setConfig({
	// 修改$u.config对象的属性
	config: {
		// 修改默认单位为rpx，相当于执行 uni.$u.config.unit = 'rpx'
		unit: 'rpx'
	},
	// 修改$u.props对象的属性
	props: {
		// 修改radio组件的size参数的默认值，相当于执行 uni.$u.props.radio.size = 30
		radio: {
			size: 15
		}
		// 其他组件属性配置
		// ......
	}
})
// uView
// request
import { $http } from '@escook/request-miniprogram'
//从网络请求包中引入$http请求对象
uni.$http = $http
//因为在其他的页面或组件中也要使用，所以要将$http对象挂载到全局对象下，在uni-app中，uni是全局对象

// var ua = window.navigator.userAgent.toLowerCase()

let port=uni.getSystemInfoSync().platform
$http.baseUrl = 'http://www.uinav.com';
if(port=='devtools'){
//当前为微信内置浏览器环境
	$http.baseUrl = 'https://www.uinav.com';
}else{
	$http.baseUrl = '/api';
}
// 配置网络请求基础地址，因为uni.$http为$http的引用，所以可以直接修改$http对象下的属性
$http.beforeRequest = function(options) {
    //配置发起网络请求前的拦截功能
    uni.showLoading({
        title: '加载中...'
    })
	// 判断请求的是否为有权限的 API 接口
	if (options.url.indexOf('/my/') !== -1) {
		// 为请求头添加身份认证字段
		options.header = {
		  // 字段的值可以直接从 vuex 中进行获取
		  Authorization:store.state.token,
		}
	}
}
$http.afterRequest = function() {
    //配置网络请求完毕后的拦截功能
    uni.hideLoading()
}

// 封装请求失败提示信息
uni.$showMsg = function(title='数据加载失败',duration=1500){
	uni.showToast({
		title,
		duration,
		icon:'none'
	})
}
// request
Vue.config.productionTip = false
App.mpType = 'app'

const app = new Vue({
	store,
    ...App
})
app.$mount()
// #endif

// #ifdef VUE3
import { createSSRApp } from 'vue'
export function createApp() {
  const app = createSSRApp(App)
  return {
    app
  }
}
// #endif